package com.csx.governance.sample.consumerC;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

/**
 * @author cuisongxu
 * @date 2023/4/2 18:47
 */
@SpringBootApplication
public class ConsumerCApplication {

    public static void main(String[] args) throws Exception {

//        ByteBuddyAgent.install();
//        new ByteBuddy()
//                .redefine(TrafficDefaultRocketMQListenerContainer.class)
//                .name(DefaultRocketMQListenerContainer.class.getName())
//                .make()
//                .load(TrafficDefaultRocketMQListenerContainer.class.getClassLoader(), ClassReloadingStrategy.fromInstalledAgent());
//        ByteBuddyAgent.install();
//        new ByteBuddy()
//                .redefine(TrafficDefaultRocketMQListenerContainer.DefaultMessageListenerConcurrently.class)
//                .name(DefaultRocketMQListenerContainer.DefaultMessageListenerConcurrently.class.getName())
//                .make()
//                .load(TrafficDefaultRocketMQListenerContainer.class.getClassLoader(), ClassReloadingStrategy.fromInstalledAgent());
//        ByteBuddyAgent.install();
//        new ByteBuddy()
//                .redefine(TrafficDefaultRocketMQListenerContainer.DefaultMessageListenerOrderly.class)
//                .name(DefaultRocketMQListenerContainer.DefaultMessageListenerOrderly.class.getName())
//                .make()
//                .load(TrafficDefaultRocketMQListenerContainer.class.getClassLoader(), ClassReloadingStrategy.fromInstalledAgent());
//        HotSwapper hs = new HotSwapper(8000);
//        ClassPool pool = ClassPool.getDefault();
//        CtClass ctClass = pool.get(DefaultRocketMQListenerContainer.DefaultMessageListenerConcurrently.class.getName());
//
//        // 获取方法
//        CtMethod ctMethod = ctClass.getDeclaredMethod("consumeMessage");
//        // 重写方法
//        ctMethod.setBody("{ return $1 + \"的前女友数量：\" + (0L) + \" 个\"; }");
//
//        // 加载新的类
//        System.out.println(":: 执行HotSwapper热插拔，修改谢飞机前女友数量为0个！");
//        hs.reload(DefaultRocketMQListenerContainer.DefaultMessageListenerConcurrently.class.getName(), ctClass.toBytecode());
        SpringApplication.run(ConsumerCApplication.class, args);

    }
}
